347cac97d157e82251f5d912397812155dc330f2,java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/LambdaParametersTypeConversionDescriptor.java,LambdaParametersTypeConversionDescriptor,addApplyReference,#PsiExpression#,53
Before Change
else if (GuavaFunctionConversionRule.GUAVA_FUNCTION.equals(qName)) {
samMethodName = "apply";
}
else if (GuavaPredicateConversionRule.GUAVA_PREDICATE.equals(qName)) {
samMethodName = "test";
}
}
After Change
String samMethodName = null;
PsiType type = expression.getType();
if (type instanceof PsiClassType) {
PsiClass resolvedClass = ((PsiClassType)type).resolve();
if (resolvedClass != null) {
final JavaPsiFacade javaPsiFacade = JavaPsiFacade.getInstance(expression.getProject());
final GlobalSearchScope scope = resolvedClass.getResolveScope();
if (InheritanceUtil.isInheritorOrSelf(resolvedClass, javaPsiFacade.findClass(GuavaSupplierConversionRule.GUAVA_SUPPLIER, scope), true)) {
samMethodName = "get";
}
else if (InheritanceUtil.isInheritorOrSelf(resolvedClass, javaPsiFacade.findClass(GuavaFunctionConversionRule.GUAVA_FUNCTION, scope), true)) {
samMethodName = "apply";
}
else if (InheritanceUtil.isInheritorOrSelf(resolvedClass, javaPsiFacade.findClass(GuavaPredicateConversionRule.GUAVA_PREDICATE, scope), true)) {
samMethodName = "test";
}
}